/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.goldentrade.negocio.interfaces.impl;

import br.com.goldentrade.negocio.beans.Corretora;
import br.com.goldentrade.negocio.interfaces.ICorretora;
import br.com.goldentrade.negocio.interfaces.impl.serviceLocator.ServiceLocator;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;



/**
 *
 * @author itaipu
 */
public class CorretoraImpl implements ICorretora {
    private EntityManager em;
    
    public void atualizar(Corretora corretora) {
  
            em = ServiceLocator.getEntityManager();
            em.getTransaction().begin();
            if(corretora.getCdCorretora() != null && corretora.getCdCorretora() > 0){
                System.out.println("atualizando");
                System.out.println(corretora.getNmCorretora());
                em.merge(corretora);
            }else{
                em.persist(corretora);
                System.out.println("inserindo");
                System.out.println(corretora.getNmCorretora());
            }
            em.getTransaction().commit();
            ServiceLocator.leaveEntityManager(em);
        
    }

    public void remover(Corretora corretora) {
        try{
            em = ServiceLocator.getEntityManager();
            em.getTransaction().begin();
            em.remove(corretora);
            em.getTransaction().commit();
            ServiceLocator.leaveEntityManager(em);
            
        } catch (Exception e) {
            System.out.println(e.getStackTrace());
        }
    }

    public Corretora selecionar(int cd) {
        Corretora c = null;
        try {
            em = ServiceLocator.getEntityManager();
            c = (Corretora) em.createNamedQuery("Corretora.findByCdCorretora").setParameter("cdCorretora", cd).getSingleResult();
            ServiceLocator.leaveEntityManager(em);
        } catch (NoResultException e) {
            System.out.println(e.getStackTrace());
        }
        return c;
    }

    public List<Corretora> selecionarTudo() {
        List<Corretora> corretoras = null;
        try {
            em = ServiceLocator.getEntityManager();
            corretoras = em.createNamedQuery("Corretora.findAll").getResultList();
            ServiceLocator.leaveEntityManager(em);
        } catch (Exception e) {
        }
        if(corretoras != null){
            return corretoras;
        }else{
            try {
                throw new Exception("Não possui dados");
            } catch (Exception ex) {
                Logger.getLogger(UsuarioImpl.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        return null;
    }
    
    
        
    
    
}
